package io.github.bigbird0101.youyishi.code.compile;

import io.github.bigbird0101.youyishi.code.CodeContent;

import java.util.List;

/**
 * 编译器
 * @author m15179835326@163.com
 */
public interface Compiler {
    /**
     * 代码内容是否匹配当前编译器
     *
     * @param codeContentsList 原生的代码
     * @return 是否匹配当前编译器
     */
    boolean match(List<CodeContent<?>> codeContentsList);

    /**
     * 编译代码
     *
     * @param codeContentsList 原生的代码
     * @return 编译后的元数据 clazz对象
     */
    List<CodeMetadata> compileCode(List<CodeContent<?>> codeContentsList);

    /**
     * 销毁class
     * @param className
     */
     default void destory(String className){

     }
}